import axios from 'axios'
import store from '@/store'
const instance = axios.create({
  baseURL: 'https://apipc-xiaotuxian-front.itheima.net'
  // timeout: 5000 // 请求等待最长时间
})

// 请求拦截器
instance.interceptors.request.use(
  // 请求成功
  config => {
    // Do something before request is sent
    // 如有token,则进行存储起来
    const token = store.state.user.profile.token
    if (token) {
      // 给请求路径添加请求头
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  // 请求失败
  error => {
    // Do something with request error
    return Promise.reject(error)
  }
)

// 响应拦截器
instance.interceptors.response.use(
  // 响应成功
  response => {
    // Do something before response is sent
    return response.data
  },
  // 响应失败
  error => {
    // Do something with response error
    return Promise.reject(error)
  }
)

// 定义一个函数发请求
// 使用方式
// request('地址',请求方式,本次请求携带的参数) ===>  返回的结果
function request(url, method, queryData) {
  // 属性名前添加[],表示动态的属性名，[]里面可以写表达式
  return instance({
    url,
    method,
    [method.toLowerCase() === 'get' ? 'params' : 'data']: queryData
  })
}

// 导出
export default request
